/**
 * @file main.c
 * @author YangSL (you@domain.com)
 * @brief 
 * @date 2022-06-09
 * 
 * @copyright Copyright (c) 2022
 * 
 */

#include "bsp.h"
#include "SEGGER_RTT.h"
#include "SEGGER_SYSVIEW.h"

#include "kernel.h"
#include "start_task.h"


uint32_t watch_count;


/**
 * @brief main函数
 * 
 * @return int 错误码,不处理
 */ 
int main(void)
{ 
//	SEGGER_RTT_ConfigUpBuffer(0, "RTTUP", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
	//SEGGER_RTT_ConfigUpBuffer(1, "RTTUP1", RTT_BUF, 4096, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
	SEGGER_RTT_printf(0, "\nprogram running!\n");

	bsp_Init();

	HAL_Delay(1000);

	SEGGER_SYSVIEW_Conf();

	//创建开始任务
    task_list[TASK_ID_START] = 
	kernel_task_create( (TaskFunction_t )start_task,            //任务函数
                		(const char*    )"start_task",          //任务名称
						(UBaseType_t    )START_TASK_PRIO,       //任务优先级
                		(uint16_t       )START_STK_SIZE,        //任务堆栈大小
                		(void*          )NULL);   				//传递给任务函数的参数

    kernel_start();          //开启任务调度

	// 开启调度器之后，正常情况下不会执行到下面的程序
	while (1)
	{
		/* code */
		watch_count++;
	}
}


